﻿using System;
using System.Collections.Generic;
using System.Text;

namespace PCR.Logic
{
    using PCR.Base;

    /// <summary>
    /// Standard curve sample data class, contains all the attributes 
    /// of a sample
    /// </summary>
    internal class StdSampleData : GuidObject, IStdSampleData
    {
        /// <summary>
        /// Get or set the cell's CT value
        /// </summary>
        public double CTVal 
        {
            get { return this._ctVal; }
            
            set 
            {
                System.Diagnostics.Debug.Assert(
                    value >= PCRRoot.Instance.ConfigManager.MinCTVal &&
                    value <= PCRRoot.Instance.ConfigManager.MaxCTVal);
                                                    
                this._ctVal = value; 
            }
        }
        double _ctVal = 0.0;

        /// <summary>
        /// Get or set the cell count
        /// </summary>
        public UInt64 CellCount 
        {
            get { return this._cellCount; }
            set { this._cellCount = value; }
        }
        UInt64 _cellCount = 0;

        /// <summary>
        /// Get or set whether to use this sample when calculating the curve 
        /// parameter
        /// </summary>
        public bool Valid 
        { 
            get { return this._valid; }
            set { this._valid = value; }
        }
        bool _valid = true;
    }
}
